home *** CD-ROM | disk | FTP | other *** search
/ Java Programmer's Toolkit / Java Programmer's Toolkit.iso / applets / collectn / arrayenu.jav < prev    next >
Text File  |  1995-10-14  |  2KB  |  77 lines

  1. /*
  2.   File: ArrayEnumeration.java
  3.  
  4.   Originally written by Doug Lea and released into the public domain. 
  5.   Thanks for the assistance and support of Sun Microsystems Labs, Agorics 
  6.   Inc, Loral, and everyone contributing, testing, and using this code.
  7.  
  8.   History:
  9.   Date     Who                What
  10.   24Sep95  dl@cs.oswego.edu   Create from collections.java  working file
  11.   13Oct95  dl                 Changed protection statuses
  12.  
  13. */
  14.   
  15. package collections;
  16.  
  17. import java.util.Enumeration;
  18. import java.util.NoSuchElementException;
  19.  
  20. /**
  21.  *
  22.  * ArrayEnumeration allows you to use arrays as Enumerations
  23.  * @author Doug Lea
  24.  * @version 0.93
  25.  *
  26.  * <P> For an introduction to this package see <A HREF="index.html"> Overview </A>.
  27. **/
  28.  
  29. public final class ArrayEnumeration implements CollectionEnumeration {
  30.   private Object [] arr_;
  31.   private int cur_;
  32.   private int size_;
  33.  
  34. /**
  35.  * Build an enumeration that returns successive elements of the array
  36. **/  
  37.   public ArrayEnumeration(Object arr[]) { 
  38.     arr_ = arr; cur_ = 0; size_ = arr.length;
  39.   }
  40.  
  41. /**
  42.  * Implements collections.CollectionEnumeration.numberOfRemainingElements
  43.  * @see collections.CollectionEnumeration#numberOfRemainingElements
  44. **/
  45.   public int numberOfRemainingElements() { return size_; }
  46.  
  47. /**
  48.  * Implements java.util.Enumeration.hasMoreElements.
  49.  * @see java.util.Enumeration#hasMoreElements
  50. **/
  51.   public boolean hasMoreElements() { return size_ > 0; }
  52.  
  53. /**
  54.  * Implements collections.CollectionEnumeration.corrupted.
  55.  * Always false. Inconsistency cannot be reliably detected for arrays
  56.  * @return false
  57.  * @see collections.CollectionEnumeration#corrupted
  58. **/
  59.  
  60.   public boolean corrupted() { return false; }
  61.  
  62. /**
  63.  * Implements java.util.Enumeration.nextElement().
  64.  * @see java.util.Enumeration#nextElement()
  65. **/
  66.   public Object nextElement() {  
  67.     if (!hasMoreElements())
  68.       throw new NoSuchElementException("exhausted enumeration");
  69.     else {
  70.       size_--;
  71.       return  arr_[cur_++];  
  72.     }
  73.   }
  74. }
  75.  
  76.  
  77.